package com.eltsistema.controller;

import java.text.ParseException;

import javax.servlet.http.HttpServletRequest;

import org.hibernate.Session;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.eltsistemas.dao.UnidadeDao;
import com.eltsistemas.modelo.Unidade;

@Controller
public class UnidadeController {
	
	@RequestMapping("/formUnidade")
	public String formUnidade()
	{
		return "cadunidade";
	}
		
	@RequestMapping("/adicionarUnidade")
	public String adiciona(Unidade unidade, HttpServletRequest request) throws ParseException
	{
		Session session = (Session) request.getAttribute("session");
		UnidadeDao daoUnidade = new UnidadeDao(session);	
		daoUnidade.adiciona(unidade);
		return "redirect:listaUnidade";
	}
	
	@RequestMapping("/listaUnidade")
	public String lista(Model model, HttpServletRequest request)
	{
		Session session = (Session) request.getAttribute("session");
		UnidadeDao daoUnidade = new UnidadeDao(session);	
		model.addAttribute("unidades", daoUnidade.lista());
		return "unidade";
	}
	
	@RequestMapping("/exibeUnidade")
	public String exibe(Unidade unidade, Model model, HttpServletRequest request)
	{
		Session session = (Session) request.getAttribute("session");
		UnidadeDao daoUnidade = new UnidadeDao(session);
		model.addAttribute("unidade", daoUnidade.exibe(unidade));
		return "editunidade";
	}
	
	@RequestMapping("/alterarUnidade")
	public String altera(Unidade unidade, HttpServletRequest request) throws ParseException
	{
		Session session = (Session) request.getAttribute("session");
		UnidadeDao daoUnidade = new UnidadeDao(session);	
		daoUnidade.altera(unidade);
		return "redirect:listaUnidade";
	}
	
	@RequestMapping("/removeUnidade")
	public String remover(Unidade unidade, HttpServletRequest request)
	{
		Session session = (Session) request.getAttribute("session");
		UnidadeDao daoUnidade = new UnidadeDao(session);	
		daoUnidade.remover(unidade);
		return "redirect:listaUnidade";
	}

}
